﻿#ifndef __BSP_GPIO_H
#define __BSP_GPIO_H

#include "gpio.h"
#include <stdbool.h>

#ifdef __cplusplus
 extern "C" {
#endif


/****************************************************
阀控引脚接口定义:
移植只需修改这里即可：
****************************************************/

#define GPIO_MOTOCTRL1_Port  GpioPortC
#define GPIO_MOTOCTRL1_Pin   GpioPin14

#define GPIO_MOTOCTRL2_Port  GpioPortC
#define GPIO_MOTOCTRL2_Pin   GpioPin15

#define GPIO_MOTOSRead1_Port  GpioPortA
#define GPIO_MOTOCRead1_Pin  GpioPin9

#define GPIO_MOTOSRead2_Port  GpioPortA
#define GPIO_MOTOCRead2_Pin  GpioPin10

#define MotorStop    {Gpio_ClrIO(GPIO_MOTOCTRL1_Port,GPIO_MOTOCTRL1_Pin);Gpio_ClrIO(GPIO_MOTOCTRL2_Port,GPIO_MOTOCTRL2_Pin);}
#define MotorMoveForward  {Gpio_ClrIO(GPIO_MOTOCTRL1_Port,GPIO_MOTOCTRL1_Pin);Gpio_SetIO(GPIO_MOTOCTRL2_Port,GPIO_MOTOCTRL2_Pin);}
#define MotorMoveReverse  {Gpio_SetIO(GPIO_MOTOCTRL1_Port,GPIO_MOTOCTRL1_Pin);Gpio_ClrIO(GPIO_MOTOCTRL2_Port,GPIO_MOTOCTRL2_Pin);}

#define DCDC_ON  {Gpio_SetIO(GPIO_DCDC_Port, GPIO_DCDC_Pin);}
#define DCDC_OFF  {Gpio_ClrIO(GPIO_DCDC_Port, GPIO_DCDC_Pin);}

#define READ_MOTO_STATUS1    (Gpio_GetInputIO(GPIO_MOTOSRead1_Port, GPIO_MOTOCRead1_Pin))
#define READ_MOTO_STATUS2    (Gpio_GetInputIO(GPIO_MOTOSRead2_Port, GPIO_MOTOCRead2_Pin))


void BSP_NB_GPIO_init(void);
void BSP_MOTOR_GPIO_init(void);
void BSP_DCDC_GPIO_init(void);
void BSP_GDLED_PORT_init(void);

void BSP_VALVE_GPIO_Read(uint8_t *Status1,uint8_t *Status2);

#endif
